Skip to content

Conversation

@Morgan88888888
Copy link

Summary/Motivation:

This PR adds a tutorial demonstrating the surrogate model–based model integration workflow.
The tutorial will be used as part of the PSE Summit breakout session to support the presentation on novel technology screening (with METAB as the case study).
The goal is to showcase how surrogate modeling can streamline integration of external models into process systems analysis workflows in WaterTAP.

Changes proposed in this PR:

  • Added a Jupyter notebook tutorial for surrogate model–based model integration.
  • Included the stable version of the model integration source code.
  • Demonstrated METAB system as a case study for novel technology screening.
  • Provided step-by-step workflow documentation for use in training and presentations.

Notes for Reviewers:

  • The notebook runs successfully in a local environment.
  • It requires the additional dependency QSD-San to be installed.

Legal Acknowledgement

By contributing to this software project, I agree to the following terms and conditions for my contribution:

  1. I agree my contributions are submitted under the license terms described in the LICENSE.txt file at the top level of this directory.
  2. I represent I am authorized to make the contributions and grant the license. If my employer has rights to intellectual property that includes these contributions, I represent that I have received permission to make contributions and grant the required license on behalf of that employer.

@Morgan88888888 Morgan88888888 marked this pull request as draft August 29, 2025 11:48
@Morgan88888888 Morgan88888888 added the Priority:High High Priority Issue or PR label Aug 29, 2025
@adam-a-a
Copy link
Contributor

adam-a-a commented Sep 1, 2025

I think the notebook (and perhaps all supporting files in this PR) belong in the tutorials directory. We should also add this tutorial to the tutorial landing page, like so: https://github.com/watertap-org/watertap/pull/1629/files#diff-fb90839f4ae252cbbfa6a8cd312447cdffc4d87f63bed1bc1cd2629b06753fddR24-R26

@adam-a-a
Copy link
Contributor

adam-a-a commented Sep 1, 2025

Also, we should aim to have this merged before the California workshop. Thus, I think you can add the optional dependencies here: https://github.com/watertap-org/watertap/pull/1629/files#diff-fb90839f4ae252cbbfa6a8cd312447cdffc4d87f63bed1bc1cd2629b06753fddR24-R26

@adam-a-a
Copy link
Contributor

adam-a-a commented Sep 1, 2025

One more comment--for the California workshop, we should add the next step of integrating the surrogates into a flowsheet (i.e., with BSM1, assuming we can make that work given our previous PRs). If not BSM1 directly, then some example of where we use the surrogates to generate example results.

@Morgan88888888 Morgan88888888 marked this pull request as ready for review September 12, 2025 13:49
Copy link
Contributor

@luohezhiming luohezhiming left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Some suggestions could be addressed later:

  • Add a brief description of QSD-SAN model will help users to understand the context
  • Tutorials show 4 surrogate modeling methods but only show results with polynomial, the users might want to see another modeling result for a comparison,

Copy link
Contributor

@MarcusHolly MarcusHolly left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A couple of minor suggestions/questions, but overall this looks really good to me

"\n",
"> Zhang, X., Arnold, W. A., Wright, N., Novak, P. J., & Guest, J. S. (2024). *Prioritization of early-stage research and development of a hydrogel-encapsulated anaerobic technology for distributed treatment of high strength organic wastewater.* Environmental Science & Technology, 58(44), 19651–19665. \n",
"\n",
"The model was implemented on the external modeling platform **QSD-SAN**. \n",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with Chenyu that it'd be nice to have a little blurb here briefly describing QSD-SAN

Comment on lines +587 to +589
"from performance_estimation import display_performace\n",
"display_performace( method=\"poly\", \n",
" path=\"./results/\",)"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a simpler way to compare model performance rather than just using display_performance for each of the 4 options. I'm assuming this is the goal of the parity plot(s), but you just haven't gotten around to adding it yet?

…integration_workflow.ipynb

Co-authored-by: MarcusHolly <[email protected]>
…integration_workflow.ipynb

Co-authored-by: MarcusHolly <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Priority:High High Priority Issue or PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants